package com.cssl.common.vo.search;

import com.cssl.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class SearchResult {
    private List<SkuEsModel> products;  //es检索到的所有商品信息
    /*
    分页信息
     */
    private Integer pageNum; //当前页码
    private Long total; //总记录数
    private Integer totalPages; //总页面
    private List<Integer> pageNavs; //导航页码 [1,2,3,4,5]

    private List<BrandVo> brands;  //当前查询到的结果所涉及到的品牌
    private List<CatalogVo> catalogs; //当前查询到的结果所涉及的到分类
    private List<AttrVo> attrs = new ArrayList<>(); //当前查询到的结果所涉及到的属性

    // ============================以上是要返回的数据====================================

    // 面包屑导航数据
    private List<NavVo> navs = new ArrayList<>();

    // 封装筛选条件中的属性id集合【用于面包屑，选择属性后出现在面包屑中，下面的属性栏则隐藏】
    // 该字段是提供前端用的
    private List<Long> attrIds = new ArrayList<>();

    /**
     * 面包屑导航VO
     */
    @Data
    public static class NavVo {
        private String navName;// 属性名
        private String navValue;// 属性值
        private String link;// 回退地址（删除该面包屑筛选条件回退地址）
    }

    @Data
    public static class BrandVo{
        private Long brandId;
        private String brandName;
        private String brandImg;
    }

    @Data
    public static class CatalogVo{
        private Long catalogId;
        private String catalogName;
    }

    @Data
    public static class AttrVo{
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }
}
